package session;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import bean.ReclamosWebBean;
import persistence.ReclamosWeb;
import util.SqlConnection;

public class ReclamosWebSession {
	
	private SqlSession session;
	
	public ReclamosWebSession(){
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	public Map<String,Object> guardarReclamosWeb(ReclamosWebBean reclamoswebBean){
		
		Map mapa = new HashMap<String, Object>();
		mapa.put("xANIO_REC", reclamoswebBean.getANIO_REC());
		mapa.put("xANXO_REC", "0001");
		mapa.put("xFEC_ING", reclamoswebBean.getFEC_ING());
		mapa.put("xCOD_TIP_PERS", reclamoswebBean.getCOD_TIP_PERS());
		mapa.put("xDSC_NOM", reclamoswebBean.getDSC_NOM());
		mapa.put("xDSC_APE_PAT", reclamoswebBean.getDSC_APE_PAT());
		mapa.put("xDSC_APE_MAT", reclamoswebBean.getDSC_APE_MAT());
		mapa.put("xNUM_DOMIC", reclamoswebBean.getNUM_DOMIC());
		mapa.put("xCOD_TIP_DOC_IDE", reclamoswebBean.getCOD_TIP_DOC_IDE());
		mapa.put("xNUM_DOC_IDE", reclamoswebBean.getNUM_DOC_IDE());
		mapa.put("xNUM_TELEF", reclamoswebBean.getNUM_TELEF());
		mapa.put("xDSC_MAIL", reclamoswebBean.getDSC_MAIL());
		mapa.put("xBOL_MENR_EDAD", reclamoswebBean.getBOL_MENR_EDAD());
		mapa.put("xIDE_BIE_SER", reclamoswebBean.getIDE_BIE_SER());
		mapa.put("xCOD_ENT", reclamoswebBean.getCOD_ENT());
		mapa.put("xDSC_BIEN_SER", reclamoswebBean.getDSC_BIEN_SER());
		mapa.put("xCOD_TIP_SOL", reclamoswebBean.getCOD_TIP_SOL());
		mapa.put("xDSC_SOL", reclamoswebBean.getDSC_SOL());
		mapa.put("xCOD_DEP", reclamoswebBean.getCOD_DEP());
		mapa.put("xCOD_PRVI", reclamoswebBean.getCOD_PRVI());
		mapa.put("xCOD_DIST", reclamoswebBean.getCOD_DIST());
		mapa.put("xNOM_PADRE_MADRE", reclamoswebBean.getNOM_PADRE_MADRE());
		mapa.put("xCOD_TIP_DOC_PDR", reclamoswebBean.getCOD_TIP_DOC_PDR());
		mapa.put("xNUM_DOC_PDR", reclamoswebBean.getNUM_DOC_PDR());
		mapa.put("xCOD_TIP_DIR", reclamoswebBean.getCOD_TIP_DIR());
		mapa.put("xCOD_VIA", reclamoswebBean.getCOD_VIA());
		mapa.put("xNOM_VIA", reclamoswebBean.getNOM_VIA());
		mapa.put("xDSC_REF_DIR", reclamoswebBean.getDSC_REF_DIR());
		mapa.put("xCOD_INT_DIR", reclamoswebBean.getCOD_INT_DIR());
		mapa.put("xCOD_CANL", reclamoswebBean.getCOD_CANAL());

		try {
			session = SqlConnection.getSessionFactory().openSession();
			ReclamosWeb reclamosweb = session.getMapper(ReclamosWeb.class);
			reclamosweb.guardarReclamosWeb(mapa);

		} catch (Exception e) {
			System.out.println(e);
		}finally{
			session.close();
		}
		
		return mapa;		
	}
	
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public ReclamosWebBean buscarReclamosWeb(int codigoSol){
		Map mapa = new HashMap<String, Object>();
		ReclamosWebBean reclamosWebBean = new ReclamosWebBean();
		ArrayList<ReclamosWebBean> lista = new ArrayList<ReclamosWebBean>();
		
		mapa.put("xIDE_SOL_WEB", codigoSol);
		mapa.put("xNUM_REC", null);
		mapa.put("xANIO_REC", null);
		mapa.put("xANXO_REC", null);
		mapa.put("xCOD_ESTADO", 0);
		mapa.put("xNUM_DOC_IDE", null);
		mapa.put("xCOD_TIP_SOL", 0);
		mapa.put("xCOD_DEP", 0);
		mapa.put("xCOD_PRVI", 0);
		mapa.put("xDSC_BIEN_SER", null);
		mapa.put("xDSC_SOL", null);
		
		try {
			session = SqlConnection.getSessionFactory().openSession();
			ReclamosWeb reclamosWeb = session.getMapper(ReclamosWeb.class);

				reclamosWeb.buscarReclamosWeb(mapa);
				lista =  (ArrayList<ReclamosWebBean>) mapa.get("ocursor");
				reclamosWebBean = lista.get(0);

			
		} catch (Exception e) {
			System.out.println(e);
		}finally{
			session.close();
		}		
		return reclamosWebBean;
	}
	
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public ArrayList<ReclamosWebBean> listarSolicitudWeb()throws Exception{
		Map mapa = new HashMap<String, Object>();
		ArrayList<ReclamosWebBean> lista = new ArrayList<ReclamosWebBean>();
		
		mapa.put("xIDE_SOL_WEB", null);
		mapa.put("xNUM_REC", null);
		mapa.put("xANIO_REC", null);
		mapa.put("xANXO_REC", null);
		mapa.put("xCOD_ESTADO", 0);
		mapa.put("xNUM_DOC_IDE", null);
		mapa.put("xCOD_TIP_SOL", 0);
		mapa.put("xCOD_DEP", 0);
		mapa.put("xCOD_PRVI", 0);
		mapa.put("xDSC_BIEN_SER", null);
		mapa.put("xDSC_SOL", null);
		
		try{
			session = SqlConnection.getSessionFactory().openSession();
			ReclamosWeb reclamosWeb = session.getMapper(ReclamosWeb.class);
			

				reclamosWeb.buscarReclamosWeb(mapa);
				lista = (ArrayList<ReclamosWebBean>) mapa.get("ocursor");

			
		} finally{
			session.close();
		}
		return lista;		
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public ArrayList<ReclamosWebBean> buscarSolicitudWeb(String nrorec, String aniorec, String anxorec, 
			int estsol, String nrodoc, int tipsol, int coddep, int codprvi, String dscbienser,
			String dscsol) throws Exception{
		Map mapa = new HashMap<String, Object>();
		ArrayList<ReclamosWebBean> lista = new ArrayList<ReclamosWebBean>();
		
		mapa.put("xIDE_SOL_WEB", null);
		mapa.put("xNUM_REC", nrorec);
		mapa.put("xANIO_REC", aniorec);
		mapa.put("xANXO_REC", anxorec);
		mapa.put("xCOD_ESTADO", estsol);
		mapa.put("xNUM_DOC_IDE", nrodoc);
		mapa.put("xCOD_TIP_SOL", tipsol);
		mapa.put("xCOD_DEP", coddep);
		mapa.put("xCOD_PRVI", codprvi);
		mapa.put("xDSC_BIEN_SER", dscbienser);
		mapa.put("xDSC_SOL", dscsol);
		
		try {
			session = SqlConnection.getSessionFactory().openSession();
			ReclamosWeb reclamosWeb = session.getMapper(ReclamosWeb.class);

				reclamosWeb.buscarReclamosWeb(mapa);
				lista =  (ArrayList<ReclamosWebBean>) mapa.get("ocursor");
			
		} catch (Exception e) {
			System.out.println(e);
		}finally{
			session.close();
		}		
		return lista;
	}
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public Map<String,Object> guardarBieSer(ReclamosWebBean reclamoswebBean){
		
		Map mapa = new HashMap<String, Object>();
		mapa.put("xNUM_BIE_SER", reclamoswebBean.getNUM_BIE_SER());
		mapa.put("xDSC_BIEN_SER", reclamoswebBean.getDSC_BIEN_SER());
		mapa.put("xCOD_TIP_BIE_SERV", reclamoswebBean.getCOD_TIP_BIE_SERV());

		try {
			session = SqlConnection.getSessionFactory().openSession();
			ReclamosWeb reclamosweb = session.getMapper(ReclamosWeb.class);
			reclamosweb.guardarBieSer(mapa);

		} catch (Exception e) {
			System.out.println(e);
		}finally{
			session.close();
		}
		
		return mapa;		
	}
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public Map<String,Object> editarBieSer(ReclamosWebBean reclamoswebBean){
		
		Map mapa = new HashMap<String, Object>();
		mapa.put("xIDE_BIE_SER", reclamoswebBean.getIDE_BIE_SER());
		mapa.put("xNUM_BIE_SER", reclamoswebBean.getNUM_BIE_SER());
		mapa.put("xDSC_BIEN_SER", reclamoswebBean.getDSC_BIEN_SER());
		mapa.put("xCOD_TIP_BIE_SERV", reclamoswebBean.getCOD_TIP_BIE_SERV());

		try {
			session = SqlConnection.getSessionFactory().openSession();
			ReclamosWeb reclamosweb = session.getMapper(ReclamosWeb.class);
			reclamosweb.editarBieSer(mapa);

		} catch (Exception e) {
			System.out.println(e);
		}finally{
			session.close();
		}
		
		return mapa;		
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public ReclamosWebBean buscarBieSer(int ideBieSer){
		Map mapa = new HashMap<String, Object>();
		ReclamosWebBean reclamosWebBean = new ReclamosWebBean();
		ArrayList<ReclamosWebBean> lista = new ArrayList<ReclamosWebBean>();
		
		mapa.put("xIDE_BIE_SER", ideBieSer);
		
		try {
			session = SqlConnection.getSessionFactory().openSession();
			ReclamosWeb reclamosWeb = session.getMapper(ReclamosWeb.class);

				reclamosWeb.buscarBieSer(mapa);
				lista =  (ArrayList<ReclamosWebBean>) mapa.get("ocursor");
				reclamosWebBean = lista.get(0);

			
		} catch (Exception e) {
			System.out.println(e);
		}finally{
			session.close();
		}		
		return reclamosWebBean;
	}
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public Map<String,Object> eliminarBieSer(ReclamosWebBean reclamoswebBean){
		
		Map mapa = new HashMap<String, Object>();
		mapa.put("xIDE_BIE_SER", reclamoswebBean.getIDE_BIE_SER());

		try {
			session = SqlConnection.getSessionFactory().openSession();
			ReclamosWeb reclamosweb = session.getMapper(ReclamosWeb.class);
			reclamosweb.eliminarBieSer(mapa);

		} catch (Exception e) {
			System.out.println(e);
		}finally{
			session.close();
		}
		
		return mapa;		
	}
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public Map<String,Object> migrarSolicitudesWeb(ReclamosWebBean reclamoswebBean){
		
		Map mapa = new HashMap<String, Object>();
		mapa.put("xCOD_CANL", reclamoswebBean.getCOD_CANAL());
		mapa.put("xCOD_ENT", reclamoswebBean.getCOD_ENT());
		mapa.put("xCOD_EST_SOL", 1);
		mapa.put("xCOD_MOT_SOL", 35);
		mapa.put("xCOD_PRO", 29);
		mapa.put("xCOD_TIP_SOL", reclamoswebBean.getCOD_TIP_SOL());
		mapa.put("xDSC_SOL", reclamoswebBean.getDSC_SOL());
		mapa.put("xFEC_REG", reclamoswebBean.getFEC_REG());
		mapa.put("xIDE_BIE_SER", reclamoswebBean.getIDE_BIE_SER());
		mapa.put("xIDE_SOL_WEB", reclamoswebBean.getIDE_SOL_WEB());
		mapa.put("xFEC_ING", reclamoswebBean.getFEC_ING());
		mapa.put("xBOL_MENR_EDAD", reclamoswebBean.getBOL_MENR_EDAD());
		mapa.put("xCOD_TIP_PERS", reclamoswebBean.getCOD_TIP_PERS());
		mapa.put("xCOD_TIP_DOC_IDE", reclamoswebBean.getCOD_TIP_DOC_IDE());
		mapa.put("xDSC_APE_PAT", reclamoswebBean.getDSC_APE_PAT());
		mapa.put("xDSC_APE_MAT", reclamoswebBean.getDSC_APE_MAT());
		mapa.put("xDSC_MAIL", reclamoswebBean.getDSC_MAIL());
		mapa.put("xDSC_NOM", reclamoswebBean.getDSC_NOM());
		mapa.put("xNUM_DOC_IDE", reclamoswebBean.getNUM_DOC_IDE());
		mapa.put("xNUM_TELEF", reclamoswebBean.getNUM_TELEF());
		mapa.put("xCOD_TIP_DOC_PDR", reclamoswebBean.getCOD_TIP_DOC_PDR());
		mapa.put("xNOM_PADRE_MADRE", reclamoswebBean.getNOM_PADRE_MADRE());
		mapa.put("xNUM_DOC_PDR", reclamoswebBean.getNUM_DOC_PDR());
		mapa.put("xCOD_DEP", reclamoswebBean.getCOD_DEP());
		mapa.put("xCOD_DIST", reclamoswebBean.getCOD_DIST());
		mapa.put("xCOD_PRVI", reclamoswebBean.getCOD_PRVI());
		mapa.put("xCOD_TIP_DIR", reclamoswebBean.getCOD_TIP_DIR());
		mapa.put("xCOD_VIA", reclamoswebBean.getCOD_VIA());
		mapa.put("xNOM_VIA", reclamoswebBean.getNOM_VIA());
		mapa.put("xNUM_DOMIC", reclamoswebBean.getNUM_DOMIC());
		mapa.put("xCOD_INT_DIR", reclamoswebBean.getCOD_INT_DIR());
		mapa.put("xDSC_REF_DIR", reclamoswebBean.getDSC_REF_DIR());

		try {
			session = SqlConnection.getSessionFactory().openSession();
			ReclamosWeb reclamosweb = session.getMapper(ReclamosWeb.class);
			reclamosweb.migrarSolicitudesWeb(mapa);

		} catch (Exception e) {
			System.out.println(e);
		}finally{
			session.close();
		}
		
		return mapa;		
	}
	
}
